home *** CD-ROM | disk | FTP | other *** search
/ Mac Mania 2 / MacMania 2.toast / Demo's / Tools&Utilities / HyperCard / FoneBookMaker 1.0 / FoneBookMaker / stack_-1.xml < prev    next >
Encoding:
Extensible Markup Language  |  1993-02-13  |  8.7 KB  |  20 lines

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <!DOCTYPE stack PUBLIC "-//Apple, Inc.//DTD stack V 2.0//EN" "" >
  3. <stack>
  4.     <name>in</name>
  5.     <id>-1</id>
  6.     <cardCount>1</cardCount>
  7.     <cardID>2962</cardID>
  8.     <listID>2113</listID>
  9.     <cantModify><false /></cantModify>
  10.     <cantDelete><false /></cantDelete>
  11.     <cantAbort><false /></cantAbort>
  12.     <cardSize>
  13.         <width>544</width>
  14.         <height>192</height>
  15.     </cardSize>
  16.     <script>-- FoneBookMaker by Robert Mason
  17. -- ¬© 1993 by HyperCode Software
  18. -- Written primarly to convert a TouchBase exported file into a wallet-
  19. -- size notebook I designed.
  20. -- This script expects the exported file to be tab delimited fields in
  21. -- the following order: Last Name, First Name, Phone1, Phone2, City,
  22. -- State, Zip. Seven fields. If the file is arranged any other way, this
  23. -- script won't work.
  24. -- This stack requires version 2.1 of HyperCard to work properly unless
  25. -- you know a little HyperTalk. I used Set ItemDelimiter which is only
  26. -- available in version 2.1 and above. You could delete that instruction
  27. -- and export your files with comma delimited fields. This will work,
  28. -- but any fields with commas in them will create confusion which is why
  29. -- I used tab-delimiting.
  30.  
  31. on openstack
  32. get the version
  33. if it < 2.1 then
  34. answer "This stack requires HyperCard version 2.1 or greater " &¬¨
  35. "to work properly."
  36. end if
  37. makeMenu
  38. end openstack
  39.  
  40. on domenu which
  41. if which is "Help" then
  42. show cd fld "Instructions"
  43. else
  44. pass domenu
  45. end if
  46. end domenu
  47.  
  48. on makeMenu
  49. set the name of menuItem 1 of menu "Apple" to "About FoneBookMaker"
  50. set menuMsg of menuItem "About FoneBookMaker" of menu "Apple" to Info
  51. end makeMenu
  52.  
  53. on info
  54. answer "FoneBookMaker 1.0  by Robert Mason" & return & " ¬© 1993 by HyperCode Software"
  55. end info
  56.  
  57. on opencard
  58. put the number of this cd & " of " & the number of cds into fld "page"
  59. end opencard
  60.  
  61. on printFone Kind,Size
  62. if Kind = "Wallet" then
  63. printWallet Size
  64. else
  65. printBook Size
  66. end if
  67. end printFone
  68.  
  69. on PrintWallet Size -- varible "size" allows for different formats later
  70. set cursor to watch
  71. repeat with i = 1 to the number of cds -- 4 wallet pages per page
  72. open report printing with template "Wallet"
  73. print card i
  74. close printing
  75. end repeat
  76. go first cd
  77. end PrintWallet
  78.  
  79. on printBook Size
  80. open report printing with template "NoteBook"
  81. print all cards
  82. close printing
  83. end printBook
  84.  
  85.  
  86. on makeFoneBook Kind,Size
  87. answer file "Which file?"
  88. if the result is "cancel" then exit makeFoneBook
  89. put it into filename
  90. -- put "TouchBase.Export" into filename
  91. repeat 40
  92. put "." after Spacer        -- create a dotted line for empty fields
  93. end repeat
  94. open file filename
  95. repeat until it is empty -- read until everything is read from file
  96. read from file filename for 30000
  97. put return & it after TheList
  98. end repeat
  99. close file filename
  100. put Kind & "," & Size into fld BookType -- to notify print function
  101. repeat while line 1 of TheList is empty
  102. delete line 1 of TheList
  103. end repeat
  104. set itemDelimiter to tab
  105. repeat with i = 1 to the number of lines of TheList
  106. set cursor to busy
  107. put line i of TheList into WorkingLine
  108. put item 1 of WorkingLine into Temp
  109. if Temp is not empty then put i && Temp
  110. if Temp is not empty then put ", " after Temp
  111. put item 2 of WorkingLine after Temp
  112. put length(Temp) into HB
  113. if HB ‚â• 24 then
  114. repeat until length(Temp) = 23
  115. delete last char of Temp
  116. end repeat
  117. put "." after Temp
  118. end if
  119. put char 1 to (24 - HB) of Spacer after Temp
  120. put Temp into LineTemp --------------------------- Lname, fname
  121. put item 3 of WorkingLine & " " & item 4 of WorkingLine into Temp
  122. put length(Temp) into HB
  123. if HB ‚â• 36 then
  124. repeat until length(Temp) = 35
  125. delete last char of Temp
  126. end repeat
  127. put "." after Temp
  128. end if
  129. put char 1 to (36 - HB) of Spacer after Temp
  130. put Temp after LineTemp ------------------------- phone #
  131. put item 5 of WorkingLine into Temp
  132. put length(Temp) into HB
  133. if HB ‚â• 34 then
  134. repeat until length(Temp) = 33
  135. delete last char of Temp
  136. end repeat
  137. put "." after Temp
  138. end if
  139. put char 1 to (34 - HB) of Spacer after Temp
  140. put Temp after LineTemp ------------------------- address
  141. if item 6 of WorkingLine is not empty then
  142. put item 6 of WorkingLine & ", " & item 7 of WorkingLine & ¬¨
  143. "  " & item 8 of WorkingLine into Temp
  144. else
  145. if item 7 of WorkingLine is not empty then
  146. put item 7 of WorkingLine & "  " & item 8 of WorkingLine into Temp
  147. else
  148. put item 8 of WorkingLine into Temp
  149. end if
  150. end if
  151. put length(Temp) into HB
  152. if HB ‚â• 32 then
  153. repeat until length(Temp) = 32
  154. delete last char of Temp
  155. end repeat
  156. end if
  157. if Temp is empty then
  158. put ".............................." into Temp -- if no city,state,zip
  159. end if
  160. put Temp after LineTemp ------------------------- City,State,Zip
  161. put LineTemp & return after FoneBookTemp -- put Temp & return after VapFone
  162. end repeat
  163. -------------------------- what kind?
  164. if Kind = "Wallet" then
  165. put FormatWalletBook(FoneBookTemp,Size) into FoneBookTemp
  166. else
  167. put FormatFoneBook(FoneBookTemp,Size) into FoneBookTemp
  168. end if
  169. BuildPreview FoneBookTemp,Size
  170. go first cd
  171. hide msg
  172. beep 2
  173. end MakeFoneBook
  174.  
  175. on BuildPreview FoneBookTemp,Size
  176. global CutHere
  177. put "Building preview windows..."
  178. repeat with i = 1 to the number of cds - 1
  179. go last cd
  180. domenu "delete card"
  181. end repeat
  182. put empty into fld 1 -- clear first field
  183. if Size = 9 then
  184. set the textsize of fld "FoneText" to 9
  185. set the textstyle of fld "FoneText" to condense
  186. else
  187. set the textsize of fld "FoneText" to 7
  188. set the textstyle of fld "FoneText" to plain
  189. end if
  190.  
  191. repeat with i = 1 to the number of lines of FoneBookTemp
  192. set cursor to busy
  193. if "¬ß" is not in line i of FoneBookTemp then --end of 4 page section
  194. -- put in by formatFoneBook function, tells program to start a
  195. -- new page
  196. put line i of FoneBookTemp & return after FldTemp
  197. else
  198. put FldTemp after fld 1
  199. put empty into FldTemp
  200. domenu "new card"
  201. if Kind = "Wallet" then put CutHere & return into fld 1
  202. end if
  203. end repeat
  204. put FldTemp after fld 1
  205. end BuildPreview
  206.  
  207. function formatWalletBook FoneBookTemp,Size
  208. global CutHere -- so it can be used during MakeFoneBook too
  209. put empty into CutHere
  210. put "Formatting wallet pages..."
  211. if Size = 7 then
  212. put 20 into NumOfLines
  213. else
  214. put 12 into NumOfLines
  215. end if
  216.  
  217.  
  218. ---------------------- make the header and line cut lines -----------
  219. get the date
  220. put it into fld "date"
  221. if length(it) ‚↠8 then
  222. repeat until length(it) = 8
  223. put "." after it
  224. end repeat
  225. end if
  226. put it into WalPageHeader
  227. repeat 9
  228. put "....." after WalPageHeader
  229. end repeat
  230. put " Index" after WalPageHeader
  231. repeat 6
  232. put "--------------------" after CutHere
  233. end repeat
  234. put "-----|" after CutHere
  235. ---------------------------------------------------------------------
  236.  
  237. put 1 into Lnum -- line counter
  238. put 0 into PBnum -- wallet page counter: PageBlock
  239. repeat
  240. set cursor to busy
  241. put CutHere & return after FormatTemp
  242. repeat NumOfLines -- 12 or 20 corresponding to 7pt or 9pt in Size
  243. if line Lnum of FoneBookTemp is empty then exit repeat -- empty
  244. put return & line Lnum of FoneBookTemp after PageBlock
  245. add 1 to Lnum
  246. end repeat
  247. if line 1 of PageBlock is empty then delete first line of PageBlock -- empty line
  248. add 1 to PBnum
  249. if the number of lines of PageBlock = NumOfLines then -- 21
  250. put "(" & char 1 of line 1 of PageBlock & "-" & char 1 of line NumOfLines of ¬¨ -- 21
  251. PageBlock & ")" into PageIndex
  252. put PageIndex into last word of WalPageHeader
  253. put WalPageHeader & return after FormatTemp
  254. put PageBlock & return after FormatTemp
  255. else
  256. delete last line of PageBlock
  257. put "(" & char 1 of line 1 of PageBlock & "-" & char 1 of last line of ¬¨
  258. PageBlock & ")" into PageIndex
  259. put PageIndex into last word of WalPageHeader
  260. put WalPageHeader & return after FormatTemp
  261. put the number of lines of PageBlock into PBL
  262. repeat NumOfLines - PBL -- 21
  263. put return after PageBlock
  264. end repeat
  265. -- put CutHere into last line of PageBlock
  266. put CutHere after PageBlock
  267. put PageBlock after FormatTemp
  268. exit repeat
  269. end if
  270. put empty into PageBlock
  271. if PBnum = 4 then -- four wallet pages max to one printed page
  272. put 0 into PBnum
  273. put CutHere after FormatTemp -- cut line for last page entry
  274. -- put CutHere into last line of FormatTemp
  275. put return & "¬ß" after FormatTemp -- mark it for MakeFoneBook
  276. end if
  277. end repeat
  278. return FormatTemp
  279. end formatWalletBook
  280.  
  281. function formatFoneBook FoneBookTemp,Size
  282. put "Formatting Pages..."
  283. put the date into fld "Date"
  284. put 1 into Num
  285. if Size = 7 then
  286. put 98 into LineLimit
  287. put 98 into LIncrement
  288. else
  289. put 62 into LineLimit
  290. put 62 into LIncrement
  291. end if
  292. repeat
  293. set cursor to busy
  294. put line Num to LineLimit of FoneBookTemp into Block
  295. if the number of lines of Block < LIncrement then
  296. put return & Block after Temp
  297. exit repeat
  298. end if
  299. put Block & return & "¬ß" after Temp
  300. add LIncrement to Num
  301. add LIncrement to LineLimit
  302. end repeat
  303. return Temp
  304. end formatFoneBook</script>
  305.     <background id="2582" file="background_2582.xml" name="" />
  306.     <card id="2962" file="card_2962.xml" marked="false" name="" owner="2582" />
  307. </stack>
  308.